<?php
/**
 * Description of ProdutoService
 *
 * @author Magno
 */
class ProdutoService {


    private $produtoDAO;
    function __construct() {
        $this->produtoDAO = new ProdutoDAO();
    }


    public function salvar($produto) {

        try {
            return $this->produtoDAO->salvar($produto);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }

    }

    public function excluir($produtoID) {

        try {
            if(!isset ($produtoID) || $produtoID <= 0)
                throw new Exception("Codigo da Produto Nao Econtrado!!!");

            $this->produtoDAO->excluir($produtoID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }

    }

    public function listar($pagina = 0, $descricao = -1, $categoriaProdutoID = -1, $leilaoID = -1, $statusID = -1, $carregarDependencias = false) {
        try {
            return $this->produtoDAO->listar($pagina, $descricao, $categoriaProdutoID, $leilaoID, $statusID, $carregarDependencias);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }

    public function listarPorOrdem($pagina = 0, $tamanho = 0, $ordem = "produtoID", $direcao = "DESC", $carregarDependencias = false) {
        try {
            return $this->produtoDAO->listarPorOrdem($pagina, $tamanho, $ordem, $direcao, $carregarDependencias);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }

    public function buscarPorID($produtoID, $carregarDependencias = false) {
        try {
            if(!isset ($produtoID) || $produtoID <= 0)
                throw new Exception("Codigo da Produto Nao Econtrado!!!");
            return $this->produtoDAO->buscarPorID($produtoID, $carregarDependencias);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }

    public function total($descricao = -1, $categoriaProdutoID = -1, $leilaoID = -1, $statusID = -1) {
        try {
            return $this->produtoDAO->total($descricao, $categoriaProdutoID, $leilaoID, $statusID);
        }catch(Exception $err) {
            throw new Exception($err->getMessage());
        }
    }
}
?>
